{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "import os\n",
    "import json\n",
    "import random\n",
    "from PIL import Image\n",
    "from IPython.display import display\n",
    "from utils import get_image_filename\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(\"./preprocess_data/train.json\", \"r\", encoding=\"utf-8\") as f:\n",
    "    train_data = json.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'image_id': '0007_64938086253_601e926dd1feae71baa06acc021fab72',\n",
       " 'point_seq_id': '6e8fd822-0389-11ec-84e3-00163e00771f',\n",
       " 'name': '柳家烧烤',\n",
       " 'texts': ['解馋热线13943310331', '出租', '柳家', '二805', '烧烤'],\n",
       " 'areas': [0.09289221371684837,\n",
       "  0.02424031547204825,\n",
       "  0.05110956467950205,\n",
       "  0.014314157581380963,\n",
       "  0.3821522461919122],\n",
       " 'min_dist': 0,\n",
       " 'rankorder': [-1, -1, 0, -1, 1],\n",
       " 'board_bbox': [834, 446, 1077, 716],\n",
       " 'origin_bboxs': [[838, 586, 1069, 647],\n",
       "  [935, 642, 976, 675],\n",
       "  [842, 524, 874, 615],\n",
       "  [932, 679, 975, 697],\n",
       "  [879, 470, 1067, 612]],\n",
       " 'normlize_bboxs': [[0.014814814814814815,\n",
       "   0.5185185185185185,\n",
       "   0.8703703703703703,\n",
       "   0.7444444444444445],\n",
       "  [0.37407407407407406,\n",
       "   0.725925925925926,\n",
       "   0.5259259259259259,\n",
       "   0.8481481481481481],\n",
       "  [0.02962962962962963,\n",
       "   0.28888888888888886,\n",
       "   0.14814814814814814,\n",
       "   0.6259259259259259],\n",
       "  [0.362962962962963,\n",
       "   0.8629629629629629,\n",
       "   0.5222222222222223,\n",
       "   0.9296296296296296],\n",
       "  [0.16666666666666666,\n",
       "   0.08888888888888889,\n",
       "   0.8629629629629629,\n",
       "   0.6148148148148148]],\n",
       " 'contour': [[[841, 647], [838, 626], [1065, 586], [1069, 606]],\n",
       "  [[976, 642],\n",
       "   [976, 671],\n",
       "   [973, 672],\n",
       "   [955, 675],\n",
       "   [935, 675],\n",
       "   [935, 668],\n",
       "   [936, 646],\n",
       "   [937, 645],\n",
       "   [943, 644],\n",
       "   [971, 642]],\n",
       "  [[874, 524],\n",
       "   [874, 608],\n",
       "   [873, 612],\n",
       "   [871, 615],\n",
       "   [842, 615],\n",
       "   [842, 609],\n",
       "   [844, 572],\n",
       "   [846, 538],\n",
       "   [847, 532],\n",
       "   [851, 528],\n",
       "   [854, 527],\n",
       "   [867, 524]],\n",
       "  [[975, 679],\n",
       "   [975, 697],\n",
       "   [932, 697],\n",
       "   [932, 685],\n",
       "   [933, 682],\n",
       "   [935, 681],\n",
       "   [959, 679]],\n",
       "  [[1067, 470],\n",
       "   [1067, 569],\n",
       "   [1060, 577],\n",
       "   [1059, 578],\n",
       "   [1055, 580],\n",
       "   [1035, 585],\n",
       "   [910, 612],\n",
       "   [880, 612],\n",
       "   [879, 606],\n",
       "   [879, 560],\n",
       "   [881, 531],\n",
       "   [882, 525],\n",
       "   [885, 519],\n",
       "   [886, 518],\n",
       "   [896, 513],\n",
       "   [1033, 475],\n",
       "   [1053, 470]]],\n",
       " 'board_contour': [[1077, 446], [845, 518], [834, 716], [1077, 686]]}"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = random.choice(train_data)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "./data/desensitized_train_images_split2/0007_64938086253_601e926dd1feae71baa06acc021fab72.jpg\n"
     ]
    }
   ],
   "source": [
    "# 加载图片\n",
    "img_filename = get_image_filename(data[\"image_id\"])\n",
    "print(img_filename)\n",
    "img = cv2.cvtColor(cv2.imread(img_filename), cv2.COLOR_BGR2RGB)\n",
    "# 裁剪img\n",
    "board_bbox = data[\"board_bbox\"]\n",
    "poi_img = img[board_bbox[1]: board_bbox[3]+1, board_bbox[0]: board_bbox[2]+1]\n",
    "draw_img = img.copy()\n",
    "for contour in data[\"contour\"]:\n",
    "    draw_img = cv2.polylines(draw_img, [np.array(contour).reshape(-1, 1, 2)], True, (255, 0, 0), 2)\n",
    "poi_img_with_ocr_box = poi_img.copy()\n",
    "\n",
    "poi_img = cv2.resize(poi_img, (224, 224))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[932, 679, 975, 697]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<PIL.Image.Image image mode=RGB size=224x224 at 0x7F66283FFF10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bbox = random.choice(data[\"origin_bboxs\"])\n",
    "print(bbox)\n",
    "plot_img = draw_img[bbox[1]: bbox[3], bbox[0]: bbox[2]]\n",
    "plot_img = cv2.resize(plot_img, (224, 224))\n",
    "display(Image.fromarray(plot_img))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from time import time\n",
    "def get_images(data: dict, dsize: tuple[int] = (224, 224)):\n",
    "    \"\"\"按顺序获取图像OCR框并resize\n",
    "\n",
    "    Returns:\n",
    "        images (torch.Tensor [2*ocr_num+2, 3, dsize, dsize]): 前面ocr+1个为不带框的，后面的为带框的，模型里利用一些技巧处理.\n",
    "    \"\"\"\n",
    "    img = cv2.cvtColor(cv2.imread(get_image_filename(data[\"image_id\"])), cv2.COLOR_BGR2RGB)\n",
    "    # print(img.shape)\n",
    "    slices = [img[bbox[1]: bbox[3], bbox[0]: bbox[2], :] for bbox in data[\"origin_bboxs\"] + [data[\"board_bbox\"]]]\n",
    "    # print(slices[0].shape)\n",
    "    slices = [cv2.resize(x, dsize) for x in slices]\n",
    "    # 直接绘制OCR框，引入多边形形状信息\n",
    "    for contour in data[\"contour\"] + [data[\"board_contour\"]]:\n",
    "        img = cv2.polylines(img, [np.array(contour).reshape(-1, 1, 2)], True, (255, 0, 0), 2)\n",
    "    slices2 = [img[bbox[1]: bbox[3], bbox[0]: bbox[2], :] for bbox in data[\"origin_bboxs\"] + [data[\"board_bbox\"]]]\n",
    "    slices2 = [cv2.resize(x, dsize) for x in slices2]\n",
    "    x = np.array(slices + slices2)\n",
    "    images = torch.from_numpy(x).permute(0, 3, 1, 2) / 255\n",
    "    return images\n",
    "\n",
    "    \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[834, 446, 1077, 716]\n",
      "[838, 586, 1069, 647]\n",
      "[935, 642, 976, 675]\n",
      "[842, 524, 874, 615]\n",
      "[932, 679, 975, 697]\n",
      "[879, 470, 1067, 612]\n"
     ]
    }
   ],
   "source": [
    "# \n",
    "print(data[\"board_bbox\"])\n",
    "for x in data[\"origin_bboxs\"]:\n",
    "    print(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([12, 3, 224, 224])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "images = get_images(data)\n",
    "images.size()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from efficientnet_pytorch import EfficientNet\n",
    "model = EfficientNet.from_name('efficientnet-b0')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([12, 224, 224, 3])\n"
     ]
    }
   ],
   "source": [
    "print(images.size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([12, 1280, 7, 7])\n"
     ]
    }
   ],
   "source": [
    "# images = images.permute(0, 2, 3, 1)\n",
    "output = model.extract_features(images)\n",
    "print(output.size())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "interpreter": {
   "hash": "c292224ab756d3f2beb5050e3fd1c533f7cdb96e405ecde17472018763e8dd24"
  },
  "kernelspec": {
   "display_name": "Python 3.9.7 64-bit ('py39': conda)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
